// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .CS}

//-------------MAIN---------------
thread 'AIR' 
          

CONST
    COUNT           = 0@
    BOMB_HANDLER    = 21@
    HYDRA           = 22@
    OFFSET          = 23@
    ADDRES          = 4@
    TO_ANGLE        = 5@
    POS_X           = 6@
    POS_Y           = 7@
    POS_Z           = 8@
    HYDRA_PILOT     = 9@
    COS_POS_Y       = 10@
    COS_POS_Z       = 11@
    GET_POS_X       = 12@
    GET_POS_Y       = 13@
    GET_POS_Z       = 14@
    STATE           = 15@
    GROUND_DISTANCE = 16@
    AT_OFFSET_X     = 17@
    AT_OFFSET_Y     = 18@
    GET_BOMB_ID     = 19@
    BOMB_COUNTER    = 20@
    NEXT_ATTACK     = 24@
    GET_BOMB_COUNTER  = 25@
END

VAR
COUNT  : INT
OFFSET : INT
ADDRES : INT
GET_BOMB_ID : INT
GET_BOMB_COUNTER:INT
BOMB_COUNTER:INT
END  
BOMB_COUNTER = 0
NEXT_ATTACK = 0


:AIR_D
wait 0 
if 
   Player.Defined(0)
jf @AIR_D 
Model.Load(#ANDROM)
Model.Load(#FAM1)
Model.Load(1636)
038B: load_requested_models 
if or
   not Model.Available(#ANDROM)
   not Model.Available(#FAM1)
   not Model.Available(1636)
jf @AIR_6D 
0ACD: show_text_highpriority "~R~~H~FATAL ERROR TERMINATE" time 19000 
end_thread 

:AIR_6D
wait 0 
04C4: store_coords_to POS_X POS_Y POS_Z from_actor $PLAYER_ACTOR with_offset 0.0 -200.0 150.0 
HYDRA = Car.Create(#ANDROM, POS_X, POS_Y, POS_Z)
Actor.StorePos($PLAYER_ACTOR, POS_X, POS_Y, POS_Z)
Car.SetImmunities(HYDRA, 1, 1, 1, 1, 1)
039F: set_car HYDRA race_to POS_X POS_Y 
0825: set_helicopter HYDRA instant_rotor_start 
HYDRA_PILOT = Actor.CreateAsDriver(Gang2, #FAM1, HYDRA)
Actor.RemoveFromMissionCleanupList(HYDRA_PILOT)
Actor.Health(HYDRA_PILOT) = 100000
Actor.SetImmunities(HYDRA_PILOT, 1, 1, 1, 1, 1)
30@ = Marker.CreateAboveActor(HYDRA_PILOT)
0AC6: ADDRES = label @GET_HYDRA_HANDLER offset                                                                        
0A8C: write_memory ADDRES size 4 value HYDRA virtual_protect 0

:LOOP
WHILE TRUE
    wait 0 
    if 0AB6: store_target_marker_coords_to 1@ 2@ 3@ // IF and SET 
    THEN
        04D2: set_plane HYDRA fly_autopilot_around_point 1@ 2@ 3@ altitude_between 100.0 and 100.0 
        0745: set_hydra HYDRA thrust_to_horizontal 
    ELSE 0ACD: show_text_highpriority "~R~~H~SET DISTINATION" time 100 
    END 
    if 00EE:   actor HYDRA_PILOT sphere 0 near_point 1@ 2@ radius 55.0 55.0 in_car 
    THEN 
        IF BOMB_COUNTER == 0
        THEN 
            GOTO @CREATE_BOMB
        END
    END
    0ab4: STATE < 571 //get$state
        if or
            STATE == 1 
            81F3:   not car HYDRA in_air 
        THEN GOTO @CLEAN
        END
    
    GOTO @BOMB_HECKING
END    
end_thread


:CREATE_BOMB //CREATE 10X BOMB
FOR COUNT = 0 TO 49 STEP 1
    OFFSET = COUNT
    OFFSET *= 4
    0407: store_coords_to POS_X POS_Y POS_Z from_car HYDRA with_offset 0.0 0.0 -9.0                                   
    0ACD: show_text_highpriority "~R~~H~OK" time 190                                                                  
    BOMB_HANDLER = Object.Create(1636, POS_X, POS_Y, POS_Z)                                                           
    0750: set_object BOMB_HANDLER visibility 1                                                                        
    04D9: object BOMB_HANDLER set_scripted_collision_check 1                                                          
    Object.CollisionDetection(BOMB_HANDLER) = True                                                                    
    0906: set_object BOMB_HANDLER mass_to 30000.0 // float                                                            
    0908: set_object BOMB_HANDLER turn_mass_to 30000.0 // float                                                       
    Object.ToggleInMovingList(BOMB_HANDLER) = True                                                                    
    08D2: object BOMB_HANDLER scale_model 10.1                                                                         
    TO_ANGLE = Actor.Angle(HYDRA_PILOT)                                                                               
    02F6: COS_POS_Y = sine TO_ANGLE // (float)                                                                              
    02F7: COS_POS_Z = cosine TO_ANGLE // (float)                                                                            
    GET_POS_Z *= 2.0                                                                                                        
    COS_POS_Y *= 2.0                                                                                                        
    COS_POS_Y *= -10.0                                                                                                      
    Object.Throw(BOMB_HANDLER, COS_POS_Y, COS_POS_Z, POS_Z)                                                                       
    Object.StorePos(BOMB_HANDLER, GET_POS_X, GET_POS_Y, GET_POS_Z)                                                                         
    0AC6: ADDRES = label @ARRAY_OF_BOMB offset                                                                        
    ADDRES += OFFSET                                                                                                  
    0A8C: write_memory ADDRES size 4 value BOMB_HANDLER virtual_protect 0
    WAIT 50
END                                             

:BOMB_HECKING
BOMB_COUNTER = 0
FOR COUNT = 0 TO 49 STEP 1

    OFFSET = COUNT
    OFFSET *= 4
    0AC6: ADDRES = label @ARRAY_OF_BOMB offset                                                                        
    ADDRES += OFFSET         
    0A8D: BOMB_HANDLER = read_memory ADDRES size 4 virtual_protect 0
    IF BOMB_HANDLER > 0
    JF CONTINUE
    IF 03CA:   object BOMB_HANDLER exists 
    JF CONTINUE
    BOMB_COUNTER++
    GET_BOMB_COUNTER = BOMB_COUNTER
    //0513: show_text_box_1number 'SLOT_02' number BOMB_COUNTER  // ~k~~VEHICLE_ENTER_EXIT~ Usar o Caa Nqueis $~1~
 
    0400: store_coords_to GET_POS_X GET_POS_Y GET_POS_Z from_object BOMB_HANDLER with_offset 0.0 0.0 0.0                                  
    02CE: GROUND_DISTANCE = ground_z_at GET_POS_X GET_POS_Y GET_POS_Z                                                                                 
    016F: create_particle 3 rotation_factor 0.0 size 1.0 intensity 150 flags 255 0 0 at 1@ 2@ 3@                     
    024F: create_corona_with_radius 0.2 type 2 lensflares 0 with_color 255 0 0 at 1@ 2@ 3@                           
    09E5: create_flash_light_at GET_POS_X GET_POS_Y GET_POS_Z RGB_mask 255 0 0 radius 200.0                                               
    if and
       not 14 >= GROUND_DISTANCE 
       04DA:   has_object BOMB_HANDLER collided 
    THEN GET_BOMB_ID = COUNT
        GOTO @BOOM
    ELSE
        if or
           04E7:   object BOMB_HANDLER in_water 
           8474:   not actor $PLAYER_ACTOR near_object_in_cube BOMB_HANDLER radius 800.0 800.0 800.0 sphere 0 
        THEN GET_BOMB_ID = COUNT
            GOTO @CLEAN_OBIECT
        END
    END
END
IF 33@ >= 20000
THEN 33@ = 0
    0209: 31@ = random_int_in_ranges 1 5 
    //31@ = 3
    IF 31@ == 1
    THEN 0AB6: store_target_marker_coords_to 1@ 2@ 3@ // IF and SET
        04C4: store_coords_to POS_X POS_Y POS_Z from_actor $PLAYER_ACTOR with_offset 0.0 -100.0 80.0 
        CAR.PutAt(HYDRA,POS_X,POS_Y,POS_Z)
        04D2: set_plane HYDRA fly_autopilot_around_point 1@ 2@ 3@ altitude_between 75.0 and 75.0 
        0745: set_hydra HYDRA thrust_to_horizontal
        039F: set_car HYDRA race_to 1@ 2@     
    ELSE 
        IF 31@ == 2
        THEN 
            04C4: store_coords_to POS_X POS_Y POS_Z from_actor $PLAYER_ACTOR with_offset 0.0 -100.0 80.0 
            CAR.PutAt(HYDRA,POS_X,POS_Y,POS_Z)
            04D2: set_plane HYDRA fly_autopilot_around_point 1@ 2@ 3@ altitude_between 75.0 and 75.0 
            0745: set_hydra HYDRA thrust_to_horizontal
            039F: set_car HYDRA race_to 1@ 2@ 
            0AB1: @ROCKET_FIRE 0
        ELSE
            IF 31@ == 3
            THEN 
                04C4: store_coords_to POS_X POS_Y POS_Z from_actor $PLAYER_ACTOR with_offset 0.0 -100.0 80.0 
                CAR.PutAt(HYDRA,POS_X,POS_Y,POS_Z)
                04D2: set_plane HYDRA fly_autopilot_around_point 1@ 2@ 3@ altitude_between 75.0 and 75.0 
                0745: set_hydra HYDRA thrust_to_horizontal
                039F: set_car HYDRA race_to 1@ 2@ 
                0AB1: @MINIGUN_FIRE 0
            ELSE
                IF 31@ == 4
                THEN 0AB1: @LASER_FIRE 0
                else
                    if 31@ == 5
                    then
                    end
                end
            END 
        END
    END
    {
    04C4: store_coords_to POS_X POS_Y POS_Z from_actor $PLAYER_ACTOR with_offset 0.0 -100.0 80.0 
    CAR.PutAt(HYDRA,POS_X,POS_Y,POS_Z)
    04D2: set_plane HYDRA fly_autopilot_around_point 1@ 2@ 3@ altitude_between 75.0 and 75.0 
    0745: set_hydra HYDRA thrust_to_horizontal
    039F: set_car HYDRA race_to 1@ 2@
    } 
END

0AB1: @ROCKET_HECK 0      
GOTO @LOOP

:BOOM

    OFFSET = GET_BOMB_ID
    OFFSET *= 4
    0AC6: ADDRES = label @ARRAY_OF_BOMB offset                                                                        
    ADDRES += OFFSET         
    0A8D: BOMB_HANDLER = read_memory ADDRES size 4 virtual_protect 0
    IF 03CA:   object BOMB_HANDLER exists 
    THEN 
        Object.StorePos(BOMB_HANDLER, GET_POS_X, GET_POS_Y, GET_POS_Z)                                                                                                   
        0400: store_coords_to GET_POS_X GET_POS_Y GET_POS_Z from_object BOMB_HANDLER with_offset 0.0 0.0 0.0
        26@ = 0.0                                                             
        for 30@ = 0 to 200 step 1                                                                                                                                        
            0208: AT_OFFSET_X = random_float_in_ranges -20.2 20.2                                                                                                          
            0208: AT_OFFSET_Y = random_float_in_ranges -20.2 20.2                                                                                                          
                                                                                                                                                                         
            0400: store_coords_to GET_POS_X GET_POS_Y GET_POS_Z from_object BOMB_HANDLER with_offset AT_OFFSET_X AT_OFFSET_Y 0.0                                         
            0948: create_explosion_at GET_POS_X GET_POS_Y GET_POS_Z type { TYPE 0 EXPLODE} 0 camera_shake 1.0                                                            
            0948: create_explosion_at GET_POS_X GET_POS_Y GET_POS_Z type { TYPE 1 FIRE} 1 camera_shake 1.0
            024F: create_corona_with_radius 26@ type 2 lensflares 0 with_color 100 0 0 at GET_POS_X GET_POS_Y GET_POS_Z                                                                   
            wait 20
            26@ += 1.0                                                                                                                                                      
        end
        
        GOTO @CLEAN_OBIECT                                                                                                                                                              
    END
GOTO @BOMB_HECKING

:CLEAN_OBIECT
OFFSET = GET_BOMB_ID
OFFSET *= 4
0AC6: ADDRES = label @ARRAY_OF_BOMB offset                                                                        
ADDRES += OFFSET         
0A8D: BOMB_HANDLER = read_memory ADDRES size 4 virtual_protect 0
IF 03CA:   object BOMB_HANDLER exists 
THEN 
    Object.RemoveReferences(BOMB_HANDLER)
    Object.Destroy(BOMB_HANDLER)
    Model.Destroy(1636)
    0A8C: write_memory ADDRES size 4 value 0X0 virtual_protect 0
    IF BOMB_COUNTER > 0
    THEN
        BOMB_COUNTER--
    END
END
GOTO @BOMB_HECKING

:GET_PED_POS    

RETURN                     

:FUNC_4    
04C4: store_coords_to GET_POS_X GET_POS_Y GET_POS_Z from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0                                                                                          
IF 0AE2: 28@ = random_vehicle_near_point GET_POS_X GET_POS_Y GET_POS_Z in_radius 200.0 find_next 1 pass_wrecked 0 //IF and SET                                                                 
THEN                                                                                                                                                                     
    if not 28@ == -1                                                                                                                                                     
    then                                                                                                                                                                 
        if not car.Wrecked(28@)                                                                                                                                          
        then                                                                                                                                                             
             29@ = CAR.Model(28@)                                                                                                                                        
             IF 29@ == #POLMAV                                                                                                                                         
             THEN                                                                                                                                                        
                 CAR.StorePos(28@, 1@, 2@, 3@)                                                                                                                                                
             END                                                                                                                                                         
        END                                                                                                                                                              
    END                                                                                                                                                                  
end
RETURN

:CLEAN
Actor.RemoveReferences(HYDRA_PILOT)
Car.RemoveReferences(HYDRA)
FOR COUNT = 0 TO 0 STEP 1
    OFFSET = COUNT                                                                  
    OFFSET *= 4                                                                           
    0AC6: ADDRES = label @ARRAY_OF_BOMB offset                                                                    
    ADDRES += OFFSET                                                                      
    0A8D: BOMB_HANDLER = read_memory ADDRES size 4 virtual_protect 0                      
    IF 03CA:   object BOMB_HANDLER exists                                                 
    THEN                                                                                  
        Object.RemoveReferences(BOMB_HANDLER)                                             
        Object.Destroy(BOMB_HANDLER)                                                      
        Model.Destroy(1636)                                                               
        0A8C: write_memory ADDRES size 4 value 0X0 virtual_protect 0                      
    END                                                                                   
END
end_thread 

:ARRAY_OF_BOMB //10X BOMB HANDLER
HEX
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00

00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00

00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00

00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00

00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
END


:ROCKET_FIRE
const
  _SWITH = 1@
  _TO_X = 3@
  _TO_Y = 4@
  _TO_Z = 5@
  _MISSILE = 6@
  _angle = 7@
  _ACTOR_HANDLER = 8@
  _sine = 9@
  _cosine = 12@
  _COORD100 = 13@
  _COORD200 = 14@
  _COORD300 = 15@
  HANDLER   = 16@
  ROCKET_THROW_HANDLER = 17@
end

for COUNT = 1 to 5 step 1
    OFFSET = COUNT
    OFFSET *= 4                             
    0AC6: ADDRES = label @swith_index_memory offset                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
    ADDRES += OFFSET                                                                                                                                                                  
    0A8D: _SWITH = read_memory ADDRES size 4 virtual_protect 0                                                                                                                                       
    if _SWITH == false                                                                                                                                                                                           
    THEN                                                                                                                                                                    
        0AC6: ADDRES = label @GET_HYDRA_HANDLER offset                                                                                                                                      
        0A8D: HANDLER = read_memory ADDRES size 4 virtual_protect 0                                                                                                               
        IF HANDLER > 0                                                                                                                                                                    
        JF CONTINUE                                                                                                                                                                 
        0407: store_coords_to _TO_X _TO_Y _TO_Z from_object  HANDLER with_offset 0.0 1.5 -2.0
        ROCKET_THROW_HANDLER = Object.Create(1598, _TO_X, _TO_Y, _TO_Z)                                                                                                                                          
        0750: set_object  ROCKET_THROW_HANDLER visibility 1                                                                                                                                                                   
        08D2: object ROCKET_THROW_HANDLER scale_model 0.1                                                                                                                                               
        04D9: object  ROCKET_THROW_HANDLER set_scripted_collision_check 1                                                                                                                                                 
        Object.CollisionDetection( ROCKET_THROW_HANDLER) = true                                                                                                                                                           
        0906: set_object  ROCKET_THROW_HANDLER mass_to 30000.0 // float                                                                                                                                                   
        0908: set_object  ROCKET_THROW_HANDLER turn_mass_to 30000.0 // float
                                                                                                                                    
        _MISSILE = Object.Create(#MISSILE, _TO_X, _TO_Y, _TO_Z)
        08D2: object ROCKET_THROW_HANDLER scale_model 0.1                                                                                                                                  
        069A: attach_object _MISSILE to_object ROCKET_THROW_HANDLER with_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0                                                                                       
        Object.CollisionDetection( _MISSILE) = false                                                                                                                                       
        097B: play_audio_at_object ROCKET_THROW_HANDLER event 1157                                                                                                                                      
        066E: create_particle "TANK_FIRE" attached_to_object _MISSILE with_offset 0.8 0.0  0.0 rotation  0.866024961519 0 0.500000766025 flag 1 handle 0@                                   
        064C: make_particle 0@ visible                                                                                                                                                                                
        064F: remove_references_to_particle 0@                                                                                                                                                                   
        0AC6: ADDRES = label @GET_HYDRA_HANDLER offset                                                                                                                                      
        0A8D: HANDLER = read_memory ADDRES size 4 virtual_protect 0                                                                                                               
        IF HANDLER > 0                                                                                                                                                                    
        JF CONTINUE                                                                                                                                                                                            
        IF and                                                                                                                                                                             
            03CA:   object  HANDLER exists                                                                                                                                                
            03CA:   object  _MISSILE exists                                                                                                                                                                         
        THEN                                                                                                                                                                                                 
            _angle = CAR.Angle( HANDLER)                                                                                                                                                                     
            _angle -= 92.0                                                                                                                                                                                       
            Object.Angle(_MISSILE) = _angle                                                                                                                                                
        END                                                                                                                                                                                                 
        02F6: _sine = sine _angle // (float)                                                                                                                                               
        02F7: _cosine = cosine _angle // (float)                                                                                                                                           
        _cosine *= 90.0                                                                                                                                                                    
        _sine *= 90.0                                                                                                                                                                      
        _sine *= -1.0                                                                                                                                                                      
        Object.ToggleInMovingList( ROCKET_THROW_HANDLER) = True 
        0400: store_coords_to _COORD100 _COORD200 _COORD300 from_object ROCKET_THROW_HANDLER with_offset 0.0 0.0 0.0 
        0063: 2@ -= _COORD300 // (float)
        Object.Throw( ROCKET_THROW_HANDLER,  _sine,  _cosine,  2@)                                                                                                                                                      
        33@ = 0
        //========================================================================
        0AC6: ADDRES = label @swith_index_memory offset                                                                                                                                     
        ADDRES += OFFSET                                                                                                                                                                       
        0A8C: write_memory ADDRES size 4 value TRUE virtual_protect 0                                                                                                                                
        0AC6: ADDRES = label @rocket offset                                                                                                                                                             
        ADDRES += OFFSET                                                                                                                                                                       
        0A8C: write_memory ADDRES size 4 value ROCKET_THROW_HANDLER virtual_protect 0                                                                                                           
        0AC6: ADDRES = label @missile offset                                                                                                                                                             
        ADDRES += OFFSET                                                                                                                                                                       
        0A8C: write_memory ADDRES size 4 value _MISSILE virtual_protect 0                                                                                                                                                                                                                                             
    end
    WAIT 30                                                                                                                                                                                    
end
0AB2: 0

:ROCKET_HECK
for COUNT = 1 to 5 step 1
    OFFSET = COUNT
    OFFSET *= 4               
    0AC6: ADDRES = label @GET_HYDRA_HANDLER offset                                                                                                
    0A8D: HANDLER = read_memory ADDRES size 4 virtual_protect 0
    IF HANDLER > 0
    JF CONTINUE                                               
    0AC6: ADDRES = label @swith_index_memory offset                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
    ADDRES += OFFSET                                                                                                                                                                   
    0A8D: _SWITH = read_memory ADDRES size 4 virtual_protect 0                                                                                                                                                      
    IF _SWITH == TRUE                                                                                                                                                                             
    THEN ///0acd: "0000000000000000" 100                                                                                                                                                              
        0AC6: ADDRES = label @rocket offset                                                                                                                                                
        ADDRES += OFFSET                                                                                                                                                    
        0A8D: ROCKET_THROW_HANDLER = read_memory ADDRES size 4 virtual_protect 0
        IF ROCKET_THROW_HANDLER > 0
        JF CONTINUE         
        0AC6: ADDRES = label @MISSILE offset                                                                                                                                                
        ADDRES += OFFSET                                                                                                                                                    
        0A8D: _MISSILE = read_memory ADDRES size 4 virtual_protect 0
        IF _MISSILE > 0
        JF CONTINUE                                                                                                                                
        if 03CA:   object  ROCKET_THROW_HANDLER exists                                                                                                                                                     
        THEN
            Actor.StorePos($PLAYER_ACTOR, _COORD100, _COORD200, _COORD300)                                                                             
            0AE1: _ACTOR_HANDLER = random_actor_near_point _COORD100 _COORD200 _COORD300 in_radius 500.0 find_next 1 pass_deads 0 //IF and SET                   
            if not _ACTOR_HANDLER == -1                                                                                                      
            THEN                                                                                                                 
                //04C4: store_coords_to 18@ 19@ 20@ from_actor _ACTOR_HANDLER with_offset 0.0 0.0 0.0                                                                                               
            END                                                                                                                  
            IF and 
                056D:   actor _ACTOR_HANDLER defined      
                03CA:   object  _MISSILE exists                                                                                                                                                                         
            THEN                                                                                                                                                                                                 
                 _angle = ACTOR.Angle( _ACTOR_HANDLER)                                                                                                                                                                     
                 _angle -= 92.0                                                                                                                                                                                       
                 Object.Angle(_MISSILE) = _angle                                                                                                                                    
            END                                                                                                                                                                    
        02F6: _sine = sine _angle // (float)                                                                                                                                               
        02F7: _cosine = cosine _angle // (float)                                                                                                                                           
        _cosine *= 90.0                                                                                                                                                                    
        _sine *= 90.0                                                                                                                                                                      
        _sine *= -1.0                                                                                                                                                                      
        Object.ToggleInMovingList( ROCKET_THROW_HANDLER) = True
        0400: store_coords_to _COORD100 _COORD200 _COORD300 from_object ROCKET_THROW_HANDLER with_offset 0.0 0.0 0.0 
        0063: 2@ -= _COORD300 // (float)                                                                                                                                         
        Object.Throw( ROCKET_THROW_HANDLER,  _sine,  _cosine,  2@)
        095C: create_smoke_at _sine _cosine 2@ velocity 0.0 0.0 0.0 RGBA 1.0 0.0 0.0 1.0 size 0.9 last_factor 0.0                                                                                                                                                                                      
        //33@ = 0                                                                                                
        END                                                                                                                                                                        
        IF AND 
            03CA:   object  ROCKET_THROW_HANDLER exists
            03CA:   object  _MISSILE exists                                                                                                                                                
        THEN
            if 056D:   actor _ACTOR_HANDLER defined
            then  
            if 0474:   actor _ACTOR_HANDLER near_object_in_cube ROCKET_THROW_HANDLER radius 5.0 5.0 4.0 sphere 0 
            then goto @l
            end
            end
            if or 
                //04DA:   has_object  ROCKET_THROW_HANDLER collided
                04E6:   object ROCKET_THROW_HANDLER near_point 18@ 19@ 20@ radius 20.1 20.1 1.1 flag 0 
                                                                                                                                                                 
                04E7:   object ROCKET_THROW_HANDLER in_water
                86BD:   obstacles_between _sine  _cosine  2@ and _sine  _cosine  2@ solid 1 car 1 actor 0 object 1 particle 0                                                                                                             
                8474:   not actor $PLAYER_ACTOR near_object_in_cube  ROCKET_THROW_HANDLER radius 200.0 200.0 100.0 sphere 0                                                                     
                33@ > 7000                                                                                                                                                                   
            THEN
            :l                                                                                                                                                                           
                0400: store_coords_to _TO_X _TO_Y _TO_Z from_object  ROCKET_THROW_HANDLER with_offset 0.0 0.0 0.0                                                                                       
                020C: create_explosion_with_radius 3 at _TO_X _TO_Y _TO_Z                                                                                                              
                //0565: create_soundless_explosion_at $TO_X $TO_Y $TO_Z type 3                                                                              
                Object.Destroy( ROCKET_THROW_HANDLER)
                Object.Destroy( _MISSILE)                                                                                                                                                       
                0AC6: ADDRES = label @swith_index_memory offset                                                                                                                                 
                ADDRES += OFFSET                                                                                                                                        
                0A8C: write_memory ADDRES size 4 value FALSE virtual_protect 0                                                                                             
            END                                                                                                                                                                                                                                                                                                                                                                                    
        END                                                                                                                                               
    END                                                                                                                                             
END



for COUNT = 1 to 5 step 1
    OFFSET = COUNT
    OFFSET *= 4
    0AC6: ADDRES = label @swith_index_memory offset                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
    ADDRES += OFFSET                                                                                                                                                                   
    0A8D: _SWITH = read_memory ADDRES size 4 virtual_protect 0                                                                                                                                                      
    IF _SWITH == TRUE                                                                                                                                                                             
    THEN ///0acd: "0000000000000000" 100                        
        0AC6: ADDRES = label @rocket offset                                                                                                                                                
        ADDRES += OFFSET                                                                                                                                                    
        0A8D: ROCKET_THROW_HANDLER = read_memory ADDRES size 4 virtual_protect 0
        IF ROCKET_THROW_HANDLER > 0
        JF CONTINUE         
        0AC6: ADDRES = label @MISSILE offset                                                                                                                                                
        ADDRES += OFFSET                                                                                                                                                    
        0A8D: _MISSILE = read_memory ADDRES size 4 virtual_protect 0
        IF _MISSILE > 0
        JF CONTINUE                                                                                                                                
        if 03CA:   object  ROCKET_THROW_HANDLER exists                                                                                                                                                     
        THEN
            if or
         
                //04DA:   has_object  ROCKET_THROW_HANDLER collided                                                                                                                                                                 
                04E7:   object ROCKET_THROW_HANDLER in_water
                86BD:   obstacles_between _sine  _cosine  2@ and _sine  _cosine  2@ solid 1 car 1 actor 0 object 1 particle 0                                                                                                             
                8474:   not actor $PLAYER_ACTOR near_object_in_cube  ROCKET_THROW_HANDLER radius 200.0 200.0 100.0 sphere 0                                                                     
                33@ > 7000                                                                                                                                                                   
            THEN
            :lj
            if 84E6:   object ROCKET_THROW_HANDLER near_point _sine _cosine  2@ radius 5.1 5.1 5.1 flag 0 
            jf @2                                                                                                                                                                                  
            0400: store_coords_to _sine _cosine  2@ from_object  ROCKET_THROW_HANDLER with_offset 0.0 0.0 0.0                                                                                           
            020C: create_explosion_with_radius 3 at _sine _cosine  2@                                                                                                           
            //0565: create_soundless_explosion_at $TO_X $TO_Y $TO_Z type 3
            :2                                                                                  
            Object.Destroy( ROCKET_THROW_HANDLER) 
            Object.Destroy( _MISSILE)                                                                                                                                                                 
                                                                                                                                                                                        
            0AC6: ADDRES = label @swith_index_memory offset                                                                                                                                     
            ADDRES += OFFSET                                                                                                                                            
            0A8C: write_memory ADDRES size 4 value FALSE virtual_protect 0
            END
        END
    END

END                                                        
0AB2: 0

:minigun_fire
0AC6: ADDRES = label @GET_HYDRA_HANDLER offset                                                                                                
0A8D: HANDLER = read_memory ADDRES size 4 virtual_protect 0
IF HANDLER > 0
then
    if 056E:   car HANDLER defined
    then 
        
        0407: store_coords_to _COORD100 _COORD200 _COORD300 from_actor HANDLER with_offset 0.0 0.0 -70.0                                                                               
        0AE1: _ACTOR_HANDLER = random_actor_near_point _COORD100 _COORD200 _COORD300 in_radius 200.0 find_next 1 pass_deads 0 //IF and SET                   
        if not _ACTOR_HANDLER == -1                                                                                                      
        THEN
        
            33@ = 0
            repeat
            wait 0
            if 33@ >= 3000
            then break
            end
            0AC6: ADDRES = label @GET_HYDRA_HANDLER offset                                                                                                
            0A8D: HANDLER = read_memory ADDRES size 4 virtual_protect 0
            if and
               056E:   car HANDLER defined
               056D:   actor _ACTOR_HANDLER defined 
            then                                                                                                 
                0208: 19@ = random_float_in_ranges -0.6 0.6 
                0208: 17@ = random_float_in_ranges -0.6 0.6 
                0407: store_coords_to 18@ 19@ 20@ from_car HANDLER with_offset 19@ 1.0 17@
                04C4: store_coords_to 3@ 4@ 5@ from_actor _ACTOR_HANDLER with_offset 0.0 0.0 0.0        
                06BC: create_M4_shoot_from 18@ 19@ 20@ target 3@ 4@ 5@ energy 100
                                                                             
                016F: create_particle 3 rotation_factor 0.0 size 1.0 intensity 150 flags 0 255 0 at 18@ 19@ 20@           
                024F: create_corona_with_radius 0.2 type 2 lensflares 0 with_color 0 255 0 at 18@ 19@ 20@                         
                09E5: create_flash_light_at 18@ 19@ 20@ RGB_mask 0 255 0 radius 200.0
                
                016F: create_particle 3 rotation_factor 0.0 size 1.5 intensity 150 flags 0 255 0 at 3@ 4@ 5@                     
                024F: create_corona_with_radius 0.2 type 2 lensflares 0 with_color 0 255 0 at 3@ 4@ 5@                           
                09E5: create_flash_light_at 3@ 4@ 5@     RGB_mask 0 255 0 radius 20.0                    
            end
            until if actor.Dead(_ACTOR_HANDLER)
            
        end
    end
end
0AB2: 0

:LASER_FIRE
0AC6: ADDRES = label @GET_HYDRA_HANDLER offset                                                                                                
0A8D: HANDLER = read_memory ADDRES size 4 virtual_protect 0
IF HANDLER > 0
then
    if 056E:   car HANDLER defined
    then 
        
        0407: store_coords_to _COORD100 _COORD200 _COORD300 from_actor HANDLER with_offset 0.0 0.0 -70.0                                                                               
        0AE1: _ACTOR_HANDLER = random_actor_near_point _COORD100 _COORD200 _COORD300 in_radius 200.0 find_next 1 pass_deads 0 //IF and SET                   
        if not _ACTOR_HANDLER == -1                                                                                                      
        THEN
        
            33@ = 0
            repeat
            wait 0
            if 33@ >= 3000
            then break
            end
            0AC6: ADDRES = label @GET_HYDRA_HANDLER offset                                                                                                
            0A8D: HANDLER = read_memory ADDRES size 4 virtual_protect 0
            if and
               056E:   car HANDLER defined
               056D:   actor _ACTOR_HANDLER defined 
            then                                                                                                 
                0208: 19@ = random_float_in_ranges -0.6 0.6 
                0208: 17@ = random_float_in_ranges -0.6 0.6 
                0407: store_coords_to 18@ 19@ 20@ from_car HANDLER with_offset 19@ 1.0 17@
                04C4: store_coords_to 3@ 4@ 5@ from_actor _ACTOR_HANDLER with_offset 0.0 0.0 0.0        
                06BC: create_M4_shoot_from 18@ 19@ 20@ target 3@ 4@ 5@ energy 50
                
                                                                             
                016F: create_particle 3 rotation_factor 0.0 size 1.0 intensity 150 flags 0 255 0 at 18@ 19@ 20@           
                024F: create_corona_with_radius 0.2 type 2 lensflares 0 with_color 0 255 0 at 18@ 19@ 20@                         
                09E5: create_flash_light_at 18@ 19@ 20@ RGB_mask 0 255 0 radius 200.0
                
                016F: create_particle 3 rotation_factor 0.0 size 1.5 intensity 150 flags 0 255 0 at 3@ 4@ 5@                     
                024F: create_corona_with_radius 0.2 type 2 lensflares 0 with_color 0 255 0 at 3@ 4@ 5@                           
                09E5: create_flash_light_at 3@ 4@ 5@     RGB_mask 0 255 0 radius 20.0
                0948: create_explosion_at 3@ 4@ 5@ type 1 camera_shake 2.0                    
            end
            until if actor.Dead(_ACTOR_HANDLER)
            
        end
    end
end
 
0AB2: ret 0

:GET_HYDRA_HANDLER ////30 * 4 byte          
hex             
 00 00 00 00 
 00 00 00 00 
end

:swith_index_memory ////30 * 4 byte    
hex             
 00 00 00 00 
 00 00 00 00 
 00 00 00 00 
 00 00 00 00
 00 00 00 00 
end

:rocket ////30 * 4 byte    
hex             
 00 00 00 00 
 00 00 00 00 
 00 00 00 00 
 00 00 00 00
 00 00 00 00 
end

:missile//30 * 4 byte    
hex             
 00 00 00 00 
 00 00 00 00 
 00 00 00 00 
 00 00 00 00
 00 00 00 00 
end 


















